'''
面向对象，数据分析案例，主业务逻辑代码
#
# 实现步骤：
# 1. 设计一个类，可以完成数据的封装
# 2. 设计一个抽象类，定义文件读取的相关功能，并使用了类实现具体功能
# 3. 读取文件，生产数据对象
# 4. 进行数据需求的逻辑计算（计算每一天的销售额）
# 5. 通过PyEcharts进行图形绘制
'''
from pyecharts.globals import ThemeType
from pyecharts.options import TitleOpts, LabelOpts, InitOpts

from file_define import *
from data_define import *
from pyecharts.charts import Bar#柱状图
text_file_reader=TextFileReader("D:/2011年1月销售数据.txt")#定义数据的对象
json_file_reader=JsonFileReader('D:/2011年2月销售数据JSON.txt')


text_data=text_file_reader.read_data()#获取数据
json_data=json_file_reader.read_data()


#合并为一条数据

total:list[Record] = text_data+json_data

 #开始数据的计算
#因为我要取，日期相同的对应的数据。字典中key是不能重复的刚好使用日期作为key
dict_total={}
#重新构造一个容器来存放数据。字典
for  record in total:
    if record.date  in dict_total.keys():
        dict_total[record.date]+=record.money#如果日期已经存在了累加起来
        #先看日期在不在字典里面，不在将日期作为key，money作为value。存到字典里面去

    else:
        dict_total[record.date]=record.money

print(dict_total)



#可视化图标开发

bar=Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))

bar.add_xaxis(list(dict_total.keys()))
bar.add_yaxis('销售额',list(dict_total.values()),label_opts=LabelOpts(is_show=False))

bar.set_global_opts(
    title_opts = TitleOpts("每日销售额")

)
bar.render("销售额.html")









